home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Scene / Eurochart44 / Articles / TheAwfulTruthAboutRTG.txt < prev    next >
Text File  |  2002-03-12  |  10KB  |  307 lines

  1.  
  2. »CL6:--------------------------------------------------------------------------------
  3. »CL0:                           The Awful Truth About RTG
  4. »CL6:--------------------------------------------------------------------------------
  5.  
  6.                           Written by »CL5:Dr. Doom »CL6:of »CL5:IRIS
  7.  
  8. »CL1:In  the  past  months since  the  last
  9. edition of the EC  a few diskmags have
  10. passed my way,  and  I've learned that
  11. the RTG vs.  non-RTG discussion  rages
  12. on even   when I'm  not  looking. »CL8:Yup,
  13. there's  a surprise, half of the world
  14. is  behind  my back,  and   there  are
  15. things  going  on  which are beyond my
  16. control.»CL1: I don't like this.
  17.  
  18. Well,  yes,  and  I  do  not  like  to
  19. comment on articles either, so instead
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. I'll    address   the   lot   of   you
  29. Intuition coders; Intuition is not the
  30. Holy  Grail! I  offer  these thoughts:
  31.  
  32. »CL8:            Compatibility
  33.  
  34. »CL1:Although some say AGA-only productions
  35. are the "less  compatible", I urge you
  36. to think this  over  just  once.  »CL7:What
  37. makes   an   AGA    production    less
  38. compatible?»CL1:  The  fact  that  it won't
  39. cooperate  with   CGX   which   is   a
  40. third-party  software  hack?  The fact
  41. that  it  requires   equipment  that's
  42. usually  considered  mandatory for the
  43. operation of an Amiga? If that defines
  44. "less    compatible",   I'm     afraid
  45. compatibility  is  going to be hard to
  46. achieve.
  47.  
  48. »CL8:Now,  I'm  going  to   make   a   bold
  49. statement  here:  Disabling the system
  50. is    a    good   idea.»CL1:    Why?    For
  51.  
  52. compatibility. Uh oh, pissed off a few
  53. people there, I think. Well, see, once
  54. you  shut  down  the system, your only
  55. variables are the  amount of memory at
  56. your disposal,  the  CPU type  and the
  57. FPU type. Memory is  easily  allocated
  58. (even    automatically)    and     the
  59. appropriate  error  messages   can  be
  60. printed  if  this  fails.  CPU and FPU
  61. types can  be  checked in exec.library
  62. with ease. This makes  your production
  63. fail-safe! Everything else is reset to
  64. standards  that  hold  true throughout
  65. Europe, and if your  demo doesn't work
  66. then,  you  can  be  pretty  sure it's
  67. your own fault and not a compatibility
  68. issue.
  69.  
  70. When on the other hand you  decide  to
  71. use  an  Intuition  screen, a world of
  72. file   systems,    display    drivers,
  73. workbench configurations,  OS  patches
  74. and  hacks  (such  as  mode promoters,
  75. input tweakers, workbench beautifiers,
  76. etc.)  and even  differing versions of
  77. the   operating    system    seriously
  78. threaten  the   compatibility  of  the
  79. production.  »CL7:If  something goes wrong,
  80. it MIGHT be  your code, it  MIGHT be a
  81. bug in the  operating system,»CL1: it MIGHT
  82. be  ModePro  giving  you   one    more
  83. bitplane than  you asked for, it might
  84. even  be    an   MMU-utility   causing
  85. problems  which  can  be   practically
  86. impossible  to trace. When (or if) you
  87. eliminate all  these problems, there's
  88. always  the  chance  that   the   next
  89. configuration will produce an array of
  90. new   ones   you   couldn't   possibly
  91. predict.
  92.  
  93. »CL1:(»CL8:In  such  a  case  the    coder  will
  94. inevitably  be  blamed  for his "lousy
  95. code"  which "failed  to consider" all
  96. of   the   potential   pitfalls.»CL1:  Yet,
  97. ironically,  when  a  14-year-old  OCS
  98. production  fails  on  a newer  Amiga,
  99. it's    automatically   considered   a
  100. failure of the principle of non-system
  101. coding  and almost  never  regarded as
  102. bad programming, even though the coder
  103. was probably,  by comparison  to  most
  104. coders today, a novice.)
  105.  
  106. »CL7:Just to  summarize:  If  a  non-system
  107. production    fails       and      the
  108. initialization routine works perfectly
  109. (i.e.   completely   initializes   the
  110. system), it is NOT the system's fault.»CL1:
  111. It  may  be   the   assembler/compiler
  112. (AsmPro has some weird bugs, mind you)
  113. but    that's    unlikely.    In   all
  114. likelihood,  the  coder  did something
  115. wrong.  If  a   non-system  production
  116. works  on  one  machine  but  not   on
  117. another  and  the  problem is not very
  118. obvious (CPU  type, etc.), the code is
  119. probably (i.e. pretty much definitely)
  120. buggy, but certain conditions may hide
  121. or  obscure  the  bugs  so  that  some
  122. systems do not reveal them.
  123.  
  124. (All of  this assumes, of course, that
  125. we're  talking  about "clean" hardware
  126. banging.)
  127.  
  128. »CL8:                Speed
  129.  
  130. »CL1:There  is   a   considerable   penalty
  131. involved speed-wise  when  choosing an
  132. Intuition screen over  a hardware one,
  133. and yet  another penalty when choosing
  134. RTG over plain  Intuition, unless  you
  135. are prepared  to  sacrifice  a lot  of
  136. time  coding  different  routines  for
  137. different set-ups.
  138.  
  139. Of  course,    that's     from     the
  140. perspective  of one who doesn't own  a
  141. graphics   card.    But   RTG    means
  142. Re-Targetable  Graphics,   not  simply
  143. catering  to  the gfx-card owners.  Do
  144. you  really  think you gain popularity
  145. if  most   sceners    watching    your
  146. production go,  "Hey,  this  would  be
  147. much faster  if it wasn't  meant to be
  148. shown on a gfx-card."
  149.  
  150. »CL8:What RTG does  not  allow  you  to  do
  151. (easily)  is  optimise  for  a  planar
  152. display. For  example, only  an  idiot
  153. would use  8  bits  per  pixel  for  a
  154. monochrome  effect.»CL1: It's  hard  enough
  155. to distinguish  between  128 shades of
  156. the  same  colour,  so wasting DMA and
  157. C2P time  with  another   bitplane  is
  158. ridiculous.  Of  course,  a   gfx-card
  159. doesn't care  if the  palette  ignores
  160. one bit of every  byte, but AGA  does.
  161. For  another  example,  an  AGA screen 
  162. might only be 180 or so lines tall and
  163. still  remain centred,  whereas an RTG
  164. screen needs an additional 38 lines at
  165. the top  which aren't  rendered.  This
  166. can be  worked  around, of course, but
  167. then you're knee-deep in  special-case
  168. coding already  and RTG starts to lose
  169. its appeal.
  170.  
  171. »CL8:Now, there  are  many  useful  palette
  172. tricks  for  blending   one   set   of
  173. bitplanes with another, creating, say,
  174. a    transparent      scroller,     or
  175. crossfading   between   images.»CL1:   Does
  176. anyone have any idea how slow a chunky
  177. crossfade   looks    by    comparison?
  178. Bitplanes  are  ideal  for these tasks
  179. and  many  others,  which  again means
  180. special-case  coding   in   order   to
  181. achieve  optimum speed on both AGA and
  182. gfx-cards.
  183.  
  184. »CL7:Let's  also remember that  the fastest
  185. of  chunky  effects  on AGA interleave
  186. rendering with  C2P  operations, or at
  187. least with writes to chip memory. This
  188. works  in  plain  Intuition but not if
  189. RTG is to be enabled.»CL1:
  190.  
  191. As  for   the    difference    between
  192. Intuition  and   non-Intuition,  well,
  193. merely  leaving  the  operating system
  194. running eats up an amount of CPU time.
  195. (Although by setting the task priority
  196. of the  production  high  enough  this
  197. amount becomes less significant.)
  198.  
  199. Consider  such  things as  1x2 and 2x1
  200. displays. How do  you do a 1x2 display
  201. in  Intuition?  Scale  your  effect to
  202. double  height,  of course, giving you
  203. as  much  chipmem   access  as  a  1x1
  204. display during  the C2P, as well  as a
  205. slight  overhead   before    it   (»CL8:the
  206. hardware equivalent is to change three
  207. registers  upon  which   the   display
  208. hardware automatically  displays every
  209. line  twice, so, you decide  which  is
  210. faster»CL1:).  This  is  really  a  case of
  211. Intuition not accounting  for  all the
  212. tricks  that  coders  come  up with to
  213. boost performance. And how could it?
  214.  
  215. As  for  2x1  effects (and 2x2 effects
  216. which  can  be   combined from 2x1 and
  217. 1x2), there are  certain  C2P routines
  218. which expand 1x1  to 2x1 with a slight
  219. speed benefit compared to  scaling the
  220. chunky  screen  first and then doing a
  221. 1x1 C2P.
  222.  
  223.  »CL8:            Flexibility
  224.  
  225. »CL1:The   thing  that  really   bugs    an
  226. old-timer as  myself (hah) is the vast
  227. number  of  things RTG  simply doesn't
  228. let you do.
  229.  
  230. »CL7:Since you're  left with  no  immediate
  231. way  to  time  your  effects   to  the
  232. vertical  refresh,  you  will  need to
  233. read or measure the exact (!) vertical
  234. refresh frequency  of the display mode
  235. your  user  chooses  and   set   up  a
  236. CIA-timer    to   serve    interrupts.»CL1:
  237. Moreover, since the frequency is not a
  238. fixed  constant  as  it  is  on  a PAL
  239. display,  one-frame   motion   becomes
  240. tricky or  in  some  cases impossible.»CL1:
  241. Consider a scroller.  Such  an  effect
  242. will  not  be  able  to  move N pixels
  243. every frame  without  moving faster on
  244. some  computers  than on others, since
  245. the  number  of  frames   per   second
  246. becomes  variable.  To  look smooth, a
  247. scroller  would  need    some   tricky
  248. interpolation  routines   that   would
  249. probably make it too slow to be smooth
  250. anyway.
  251.  
  252. »CL8:Ok, now, I  am  going to wrap this up.
  253. Just remember,  this  is  not meant to
  254. discourage RTG productions  or make me
  255. out to look like the oldschool fanatic
  256. that  I  really  am.»CL1:   I   like    RTG
  257. productions   because     they     are
  258. productions  and  all  productions are
  259. nice, even if they  are released under
  260. the Loonies label. However,  I do hope
  261. I can discourage the  attitude towards
  262. AGA  that  I  have  seen  expressed in
  263. diskmags recently.  I don't  know what
  264. makes people  think  the  way they do,
  265. because no  matter  how  I look at it,
  266. they seem to be wrong.
  267.  
  268. »CL7:I guess part of it is about wanting to
  269. see all  of  that  expensive  hardware
  270. being  put  to   use. »CL1:  This   is   an
  271. unpleasant  notion,  because  it means
  272. many  coders  have  spent   money   on
  273. hardware  which later turned out to be
  274. more or  less worthless (like, oh say,
  275. PPC boards).  Now  they   won't  admit
  276. how  worthless  it  really is, so they
  277. try to justify  the  unfair price they
  278. paid by making the rest  of us believe
  279. it's   the  one   and  only  road   to
  280. salvaging  the   Amiga  scene.  That's
  281. particularly unpleasant since no Amiga
  282. hardware is really being  manufactured
  283. on a large scale at present.
  284.  
  285. »CL8:Again, I like RTG productions, I think
  286. most  people  do.  I  just   fail   to
  287. appreciate   being   told   that   the
  288. traditional approach to demo coding is
  289. outdated,   especially    when     the
  290. arguments  are   weak  and   the  tone
  291. is self-righteous.»CL1:
  292.  
  293. Yep,  I  got  all excited  there. That
  294. wasn't supposed  to happen.  Should up
  295. my  medication.  Check   with   doctor
  296. tomorrow.  Yes.  Goodnight  everybody.
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.       »PIC:3.iff»
  307.